package com.erlang.spring.proxy;

import com.erlang.spring.pojo.HouseOwner;
import com.erlang.spring.service.HouseAgencyCompany;

/**
 * 静态代理：在程序运行前手动创建代理类，代理类和目标类需要实现相同接口；
 *
 * 思考:
 *    静态代理有什么问题？
 * 	  如果目标类中有多个方法都需要增强，我们得为每一个服务都得创建代理类，工作
 * 	量太大，不易管理。同时接口一旦发生改变，代理类也得相应修改.
 *
 * @Description：中介（代理人）
 */
public class HouseProxyStatic implements HouseAgencyCompany {

    /**
     * 被代理人
     */
    private HouseOwner houseOwner;

    public HouseProxyStatic() {
        this.houseOwner = new HouseOwner();
    }

    @Override
    public void rentingHouse() {
        System.out.println("中介带看房子");
        System.out.println("中介约房东");
        houseOwner.rentingHouse();
        System.out.println("中介完成租房");
    }
}
